const fs = require('fs')
const path = require('path')

function moveAndCopyFiles() {
  // 源目录
  const sourceDir = path.join('dist', 'build', 'h5')
  // 目标目录
  const targetDir = path.join(sourceDir, 'dist')
  // 根目录
  const rootDir = process.cwd()

  // 确保源目录存在
  if (!fs.existsSync(sourceDir)) {
    console.error(`错误：源目录 '${sourceDir}' 不存在。`)
    return
  }

  // 创建目标目录（如果不存在）
  if (!fs.existsSync(targetDir)) {
    fs.mkdirSync(targetDir, { recursive: true })
  }

  // 读取源目录中的所有项目
  const items = fs.readdirSync(sourceDir)
  items.forEach((item) => {
    const srcPath = path.join(sourceDir, item)
    const destPath = path.join(targetDir, item)
    // 跳过目标目录本身
    if (srcPath === targetDir) {
      return
    }
    // 移动文件或目录
    fs.renameSync(srcPath, destPath)
  })

  console.log(`文件已成功从 '${sourceDir}' 移动到 '${targetDir}'。`)

  // 复制 scripts 目录
  const scriptsDir = path.join(rootDir, 'scripts')
  const targetScriptsDir = path.join(targetDir, 'scripts')
  if (fs.existsSync(scriptsDir)) {
    fs.cpSync(scriptsDir, targetScriptsDir, { recursive: true })
    console.log(`scripts 目录已复制到 '${targetScriptsDir}'。`)
  } else {
    console.warn(`警告：scripts 目录不存在于根目录。`)
  }

  // 复制 package.json 文件到 targetDir 的外层
  const packageJsonPath = path.join(rootDir, 'package.json')
  const targetPackageJsonPath = path.join(path.dirname(targetDir), 'package.json')
  if (fs.existsSync(packageJsonPath)) {
    fs.copyFileSync(packageJsonPath, targetPackageJsonPath)
    console.log(`package.json 文件已复制到 '${targetPackageJsonPath}'。`)
  } else {
    console.warn(`警告：package.json 文件不存在于根目录。`)
  }
}

moveAndCopyFiles()
